The ability to duplicate and store the contents of a storage device is important in a storage system. Data may be stored in parallel to safeguard against the failure of a single storage device. Upon a failure of the first storage device, the system may then retrieve an archived copy of the data contained at a second storage device. The ability to duplicate and store the contents of the storage device also allows the creation of a fixed record of contents at the time of duplication. This feature allows users to recover a prior version of inadvertently edited or erased data.
There are generally space and processing costs associated with copying and storing the contents of a storage device. For example, the storage device cannot accept input/output (I/O) operation while its contents are being copied. Furthermore, the storage space used to keep the copy cannot be used for other storage needs and should therefore be minimized.
Known storage systems and storage software products can provide ways to make point-in-time copies of disk volumes. In some of these products, the copies may be made very quickly, without significantly disturbing applications using the disk volumes. In other products, the copies may be made space efficient by sharing storage instead of copying all the disk volume data.
However, known methodologies for copying data files are flawed. Some of the known disk copy methods do not provide fast copies. Other known disk copy methods solutions are not space efficient, wasting valuable storage space. Still other known disk copy methods provide fast and space-efficient snapshots, but do not do so in a scaleable, distributed, table-driven virtual storage system.
As a result, there exists a current need for a fast, space efficient method to copy the contents of a storage device. There is further need for a disk copy method that provides fast and space efficient copies in a distributed, virtual storage architecture to support large enterprises and to offer high scalability.